#include <iostream>
using namespace std;

int n, m, h_x, h_y;
int hjx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
int hjy[] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
bool isgo[25][25];
long long dpArr[25][25];
void dp()
{
    /* dp方程 */
    // dpArr[i][j]=dpArr[i-1][j]+dpArr[i][j-1]; 

    /*init */
    dpArr[1][1]=1;
    for (int i = 0; i < 9; i++)
        isgo[h_x+hjx[i]][h_y+hjy[i]]=1;
    
    /*dp顺序*/
    for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++) 
            if((i!=1||j!=1)&&!isgo[i][j])
                dpArr[i][j]=dpArr[i-1][j]+dpArr[i][j-1];
}

int main()
{
    scanf("%d%d%d%d", &n, &m, &h_x, &h_y);
    n++;m++,h_x++,h_y++;
    dp();
    cout<<dpArr[n][m];
    return 0;
}